home *** CD-ROM | disk | FTP | other *** search
/ EnigmA Amiga Run 1996 February / EnigmA AMIGA RUN 04 (1996)(G.R. Edizioni)(IT)[!][issue 1996-02][Skylink CD III].iso / earcd / e / ddmoduls.lha / dd_Modules / dd_gui / dd_screennotify.e < prev    next >
Text File  |  1995-12-02  |  1KB  |  51 lines

  1. OPT MODULE
  2. OPT EXPORT
  3.  
  4. MODULE 'exec/ports'
  5. MODULE 'intuition/screens'
  6. MODULE 'screennotify'
  7. MODULE 'libraries/screennotify'
  8.  
  9. OBJECT dd_screennotify
  10.   PRIVATE
  11.   screen:PTR TO screen
  12.   client:LONG
  13.   port:PTR TO mp
  14.   PUBLIC
  15.   signalmask
  16. ENDOBJECT
  17.  
  18. PROC new(screen) OF dd_screennotify
  19.   self.screen:=screen
  20.   IF screennotifybase:=OpenLibrary('screennotify.library',0)
  21.     self.port:=CreateMsgPort()
  22.     IF self.port
  23.       self.signalmask:=Shl(1,self.port.sigbit)
  24.       self.client:=AddCloseScreenClient(self.screen,self.port,0)
  25.     ENDIF
  26.   ENDIF
  27. ENDPROC
  28. PROC end() OF dd_screennotify
  29.   DEF msg
  30.   IF screennotifybase
  31.     IF self.client
  32.       RemCloseScreenClient(self.client)
  33.       self.client:=NIL
  34.     ENDIF
  35.     IF self.port
  36.       WHILE msg:=GetMsg(self.port) DO ReplyMsg(self.port)
  37.       DeleteMsgPort(self.port)
  38.       self.port:=NIL
  39.       self.signalmask:=0
  40.     ENDIF
  41.     CloseLibrary(screennotifybase)
  42.   ENDIF
  43. ENDPROC
  44.  
  45. PROC signalmask() OF dd_screennotify IS self.signalmask
  46.  
  47. PROC handle() OF dd_screennotify
  48.   DEF msg
  49.   WHILE msg:=GetMsg(self.port) DO ReplyMsg(msg)
  50. ENDPROC
  51.